home *** CD-ROM | disk | FTP | other *** search
/ Enter 2010 January / ENTER_2010_01.iso / Programy / Gry / Base_Invaders_ / BaseInvadersSetup1.3.exe / {app} / Scripts / LevelOneSpawners.lua < prev    next >
Encoding:
Text File  |  2007-01-25  |  1.7 KB  |  70 lines

  1.  
  2. SpawnGroup = {};
  3. SpawnGroup.Prob = {};
  4. SpawnGroup.Prob.miner  = 0.30;
  5. SpawnGroup.Prob.squad  = 1.0;
  6. SpawnGroup.Prob.bomber  = 0.60;
  7. --SpawnGroup.Prob.kamikaze  = 1.0;
  8. --SpawnGroup.Prob.driller  = 1.0;
  9. --SpawnGroup.Prob.psychic  = 1.0;
  10. --SpawnGroup.Prob.ninja  = 1.0;
  11. --SpawnGroup.Prob.spiker  = 1.0;
  12. SpawnGroup.Prob.stacker  = 0.40;
  13. --SpawnGroup.Prob.basic  = 0.40;
  14. SpawnGroup.ProbTotal = 0.0;
  15. SpawnGroup.SpawnSpeed = 0.5;
  16. SpawnGroup.Time = 0.0;
  17. SpawnGroup.Spawners = {};
  18. SpawnGroup.MaxSpawn = 100;
  19.  
  20. function SpawnGroup.Update()
  21.     
  22.     SpawnGroup.Time = SpawnGroup.Time  +  SpawnGroup.SpawnSpeed * GameTimeDiff;        
  23.         
  24.     --if( G.KeyTriggered( "F5" ) ) then    
  25.         --Level.LoadLevelData();    
  26.         --SpawnGroup.Time = 0;    
  27.         --G.SetNumPoints( 100 );    
  28.     --end
  29.                 
  30.     --SpawnGroup.SpawnSpeed = 0.1 + GameTime / 200.0;    
  31.             
  32.     while( SpawnGroup.Time > 1.0 ) do
  33.     
  34.         SpawnGroup.Time = SpawnGroup.Time - 1.0;
  35.         
  36.         if( NumInvaders >= SpawnGroup.MaxSpawn ) then
  37.             return;
  38.         end
  39.         
  40.         local rand = math.random();        
  41.         rand = rand * SpawnGroup.ProbTotal;
  42.             
  43.         local total = 0.0;
  44.         for invadername,prob in pairs( SpawnGroup.Prob ) do    
  45.             total = total + prob;
  46.             if( total > rand ) then
  47.                 local invader = G.Allocate( invadername );                
  48.                 local randpos = math.random();                
  49.                 local tpos = Vector3( 250 + math.cos(randpos*6.28) * 245 ,5,  250 + math.sin(randpos*6.28) * 245  );
  50.                 invader.SetPosition( tpos );                
  51.                 invader.Init();
  52.                 return;
  53.             end
  54.         end        
  55.     end
  56. end
  57.  
  58. function SpawnGroup.Total()
  59.     SpawnGroup.ProbTotal = 0;
  60.     for invadername,prob in pairs( SpawnGroup.Prob ) do    
  61.         SpawnGroup.ProbTotal = SpawnGroup.ProbTotal + prob;
  62.     end
  63. end
  64.  
  65. function Spawning()
  66.     SpawnGroup.Total();
  67.     SpawnGroup.Update();
  68. end
  69.  
  70. GMain[ "Spawning" ] = Spawning;